package musgo

class HomeController {

    def index() {
        int[] albunesNuevos= new int[9];
        Album [] albunesnew =  new Album[9];
        Cancion cancionprueba
        //carga un acancion de prueba para el home
        def cancionpruebaid= Cancion.findByNombreC("juanes cancion")
        if(cancionpruebaid!=null){
             cancionprueba = Cancion.get(cancionpruebaid.id) ///////////aquiiii que nos e olvid
    }
    
        def albunes = Album.getAll()
       
        int cont=0
        for(int i=albunes.size()-1; i>=0 ; i--){
            albunesNuevos[cont]=albunes[i].id
            cont++
        }
      
        for(int j=0; j<=8 ; j++){
            
            if (albunesNuevos[j]== 0){
                albunesNuevos[j]= 1
           }
        }
        for(int k=0; k<=8 ; k++){
            
           albunesnew[k]=Album.get(albunesNuevos[k])
        }
        
        
       [cancionvista:cancionprueba, albunesNuevo:albunesnew]//import al final  de home/index
     
        
        
    }
    
    def login = {
        if(request.method == "GET"){
            session.nick = null
            def artista = new Artista()
        }else{
            def artista = Artista.findByNickAndPassword(params.nick,params.password)
            
            if(artista){
                session.nick = artista.nick
                session.password = artista.password
                if(artista.nick == 'admin'){//esto no lo usamos
                    
                }else{
                    redirect(controller:'artista',action:'profile',params:[ide:artista.id])
                }
             }else{
                redirect(uri:'/artista/login')
                
             }
        }
       
    }//fin login
    
    def logout = {
        session.nick = null
        session.password = null
        flash['message'] = 'Successfully logged out'
        redirect(uri:'/home/index')
}
    
    def registro (){
		
	Imagen imagen;                         //vamos a tomar la imagen que se cargo validar y guaradar en la base de datos
	
		
	def f = request.getFile('imagenp')
	if (!f.empty) {
		imagen = new Imagen(
                    nombre : f.originalFilename
                    , tipoContenido : f.contentType
                    , tamano : f.size
                    , archivo : f.bytes
			).save()   
		}                        //guardamos la imagen en la base de datos
	params.imagenp=null  //colocamos la imagenp de los parametros en null
	
	def dataArtista= new Artista(params) //creamos un artista con los parametros menos la imagen
	dataArtista.imagenperfil=imagen   //agrega la imagen guardada al perfil
		
	if(!dataArtista.hasErrors() && dataArtista.save()){   //si graba correctamente abre la seccion con el nick del artista
            session.nick=dataArtista.nick
		redirect(controller: "artista" , action:"profile", params:[ide:dataArtista.id])//envia la id del artista recien creado ala pagina del perfil principal
			
	}else{
            if(dataArtista.imagenperfil.equals(null)){
            println "envio acaaaa sin foto guardada"
            redirect(controller:"artista", action:"create" ,params:[ nombre:params.nombre,email:params.email, pais:params.pais, ciudad:params.ciudad,
								integrantes:params.integrantes,historia:params.historia, imagenp:"noseimportofoto"])
		
            }else{
		println " entro aca con foto guardada"
		println imagen.nombre	
		imagen.delete()   ///no sirve no se por que putas
			
		redirect(controller:"artista", action:"create" ,params:[nombre:params.nombre,
			,email:params.email, pais:params.pais, ciudad:params.ciudad,
			 integrantes:params.integrantes, historia:params.historia, imagenp:"noseimportofoto"])
			}
		}
		
		
				
	}//fin registropass
        
    def contacto(){
        
    }
    
    
    def musicareproduccion = {
		
		
		def musicax = ArchivoMusica.get(params.id)
		
		//log.debug "Mostrando imagen ${musicax?.nombre}"
		//response.setHeader("Content-disposition", "attachment; filename=${musicax?.nombre}")
		response.contentType = musicax?.tipoContenido
		byte[] archivo = musicax?.archivo
		response.contentLength = musicax?.tamano
		response.outputStream << musicax.archivo
		
		
		
	}
    
    
    def busqueda(){
        println params
        ArrayList listaCanciones = new ArrayList(100);
        ArrayList listaArtistas = new ArrayList(100);
        ArrayList listaAlbunes = new ArrayList(100);
        
        Cancion auxCancion;
        Artista auxArtista;
        Album auxAlbum;
        if(params.id.equals("1")){
         def resultCancion =Cancion.findAllByNombreCLike("%${params.palabra}%")
       
       resultCancion.each{
           auxCancion = Cancion.get(it.id)
           listaCanciones.add(auxCancion)
       }
       def resultArtista =Artista.findAllByNombreLike("%${params.palabra}%")
       
       resultArtista.each{
           auxArtista = Artista.get(it.id)
           listaArtistas.add(auxArtista)
       }
       def resultAlbum =Album.findAllByNombreALike("%${params.palabra}%")
       
       resultAlbum.each{
           auxAlbum = Album.get(it.id)
           listaAlbunes.add(auxAlbum)
       }   
            
            
        }else{
        def resultCancion =Cancion.findAllByNombreCLike("${params.letra}%")
       
       resultCancion.each{
           auxCancion = Cancion.get(it.id)
           listaCanciones.add(auxCancion)
       }
       def resultArtista =Artista.findAllByNombreLike("${params.letra}%")
       
       resultArtista.each{
           auxArtista = Artista.get(it.id)
           listaArtistas.add(auxArtista)
       }
       def resultAlbum =Album.findAllByNombreALike("${params.letra}%")
       
       resultAlbum.each{
           auxAlbum = Album.get(it.id)
           listaAlbunes.add(auxAlbum)
       }
        
        }
        
        render(view: "busqueda", model: [cancionInstanceList: listaCanciones, artistaInstanceList:listaArtistas,albumInstanceList:listaAlbunes])
        
    }
    def eventos(){
        Evento auxeve;
        ArrayList listaeve = new ArrayList(100);
        
        def eve = Evento.getAll()
        println eve
        eve.each{
           auxeve = Evento.get(it.id)
           listaeve.add(auxeve)
           
       }
       
        [eventos:listaeve,eventoInstanceTotal:Evento.count()]
        
    }
    
}
